﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WindowsFormsApplication1
{
    public class AbstractSong
    {
        private string name;
        private string band;
        private double duration;
        private int year;

        public int GetYear()
        {
            int str = this.year;
            return str;
        }

        public void SetYear(int s)
        {
            this.year = s;
        }

        public string GetName()
        {
            string str = this.name;
            return str;
        }

        public string GetBand()
        {
            string str = this.band;
            return str;
        }

        public double GetDur()
        {
            double y = this.duration;
            return y;
        }

        public void SetName(string s)
        {
            this.name = s;
        }

        public void SetBand(string s)
        {
            this.band = s;
        }

        public void SetDur(double N)
        {
            this.duration = N;
        }
    }

    class Audio : AbstractSong
    {
        private string album;

        public string GetAlbum()
        {
            string str = this.album;
            return str;
        }

        public void SetAlbum(string s)
        {
            this.album = s;
        }
    }

    class Video : AbstractSong
    {
        
    }

    class Live : Video
    {
        private string city;

        public string GetCity()
        {
            string str = this.city;
            return str;
        }

        public void SetCity(string s)
        {
            this.city = s;
        }
    }

    class Clip : Video
    {
        private string director;

        public string GetDirector()
        {
            string str = this.director;
            return str;
        }

        public void SetDirector(string s)
        {
            this.director = s;
        }
    }

    public class Disk
    {
        public ArrayList disk = new ArrayList();

        public void Add(AbstractSong a)
        {
            disk.Add(a);
        }
    }

    class Disk1
    {
        public Disk Create()
        {
            Disk dl = new Disk();

            Audio s1 = new Audio();
            s1.SetName("Шаман");
            s1.SetBand("Мельница");
            s1.SetDur(6.15);
            s1.SetYear(2002);
            s1.SetAlbum("Дикие травы");
            dl.Add(s1);
            
            Clip s2 = new Clip();
            s2.SetName("Abandoned");
            s2.SetBand("Kamelot");
            s2.SetDur(4.07);
            s2.SetYear(2005);
            s2.SetDirector("???");
            dl.Add(s2);

            Live s3 = new Live();
            s3.SetName("Trois Veirges");
            s3.SetBand("Epica");
            s3.SetDur(4.43);
            s3.SetYear(2010);
            s3.SetCity("London");
            dl.Add(s3);

            return dl;
        }
    }
}
